#include <stdio.h>

int main(void) {
    // printf("Hello, World!\n");
    int a[15][15]={0};
    int n;//表示魔方阵的阶数
    int row=0;//表示行；
    int col=0;//表示列
    int i=0;
    int prevrow=0,prevcol=0;
    while (1) {
        printf("请输入n（1-15）：");
        scanf("%d",&n);
        if(n!=0&&n<=15&&n%2!=0) {
            break;
        }else {
            printf("请输入奇数\n");
        }
    }
    col=n/2;
    a[row][col]=1;

    for (i = 2; i <= n*n; ++i) {
        row--;
        col++;
        if(row<0) {
            row=n-1;
        }
        if(col>=n) {
            col=0;
        }
        if(a[row][col]!=0) {
            row=prevrow+1;
            col=prevcol;
        }
        a[row][col]=i;
        prevrow=row;
        prevcol=col;
    }
    for (i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            printf("%4d ",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}
